Information storage systems may include a variety of different hardware and software components. For instance, a storage system may include one or more storage controllers, where each of the storage controllers provides the low-level control for a plurality of physical storage drives. The storage system may also include network connections and other items that are ancillary to the storage functionality of the system. Storage systems continue to become more and more complex, with storage controllers hosting an increasing number of logical storage volumes and storage controllers being clustered rather than simply standing alone.
Conventional storage systems sample performance data of the various components on a time-based schedule in order to facilitate performance monitoring, optimization, planning and troubleshooting. In one example system, a given logical storage volume stores data to a multitude of underlying physical storage devices, and the performance of each of the storage devices affects the overall performance of the logical storage volume. The storage controller has a performance reporting function that samples performance data of the logical volume and transmits the performance data to one or more analytical programs. The storage controller samples the performance data of the logical volume (including, among other things, performance data of the underlying physical storage drives) at intervals set by a system clock, e.g., once every five minutes.
The processing power used in reporting the sampled performance data is overhead in the storage system because it does not relate directly to storage operations being performed. As the number of logical volumes in a storage system increases, the amount of data sampled and transferred also increases, thereby increasing overhead. This means that as storage systems grow and more objects (e.g., logical volumes) are allocated by a user, the overhead of performance data collection grows without direct relation to the actual performance of the system. Longer term, object growth is expected to continue making the current approach untenable.
One way to compensate for the increased amount of sampled and transferred data is to reduce the frequency of sampling and transferring. Reducing the sampling and transferring frequency can reduce system overhead, but at a cost of reduced data resolution. Reduced data resolution may make some troubleshooting more difficult or impossible. There is currently no solution that reduces overhead without reducing data resolution.